package com.example.springbootdemo.annotation;

import com.example.springbootdemo.enums.logging.LogLevelEnum;
import com.example.springbootdemo.enums.logging.LogPrintEnum;
import com.example.springbootdemo.enums.logging.LogSaveTypeEnum;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @Author: ShengXiaJia
 * @Date: 2019/12/6 11:17
 * @Description: 日志记录
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Logging {

    /**
     * 日志级别
     *
     * @return
     */
    LogLevelEnum logLevel() default LogLevelEnum.INFO;

    /**
     * 日志保存时类型
     *
     * @return
     */
    LogSaveTypeEnum logSaveType() default LogSaveTypeEnum.FILE;

    /**
     * 日志标题[表头]
     *
     * @return
     */
    String logTitle() default "";


    /**
     * 日志简述
     *
     * @return
     */
    String logDesc() default "";

    /**
     * 是否记录打印返回值 - 默认不打印
     *
     * @return
     */
    LogPrintEnum printRetMsg() default LogPrintEnum.ALL;
}
